#pragma once

#include "../../src/config.h"

#define MAP_NONE (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8))

#define MAP_GROUP(map) (MAP_##map >> 8)
#define MAP_NUM(map) (MAP_##map & 0xFF)
#define MAP_IS(map) (gSaveBlock1->location.mapGroup == MAP_GROUP(map) && gSaveBlock1->location.mapNum == MAP_NUM(map))

#define MAP(map) MAP_GROUP(map), MAP_NUM(map)

#ifndef UNBOUND //For FireRed

// Map Group 0
#define MAP_UNKNOWN_MAP_00_00 (0 | (0 << 8))
#define MAP_UNKNOWN_MAP_00_01 (1 | (0 << 8))
#define MAP_UNKNOWN_MAP_00_02 (2 | (0 << 8))
#define MAP_UNKNOWN_MAP_00_03 (3 | (0 << 8))
#define MAP_UNKNOWN_MAP_00_04 (4 | (0 << 8))

// Map Group 1
#define MAP_VIRIDIAN_FOREST                      (0 | (1 << 8))
#define MAP_MT_MOON_1F                           (1 | (1 << 8))
#define MAP_MT_MOON_B1F                          (2 | (1 << 8))
#define MAP_MT_MOON_B2F                          (3 | (1 << 8))
#define MAP_SSANNE_EXTERIOR                      (4 | (1 << 8))
#define MAP_SSANNE_1F_CORRIDOR                   (5 | (1 << 8))
#define MAP_SSANNE_2F_CORRIDOR                   (6 | (1 << 8))
#define MAP_SSANNE_3F_CORRIDOR                   (7 | (1 << 8))
#define MAP_SSANNE_B1F_CORRIDOR                  (8 | (1 << 8))
#define MAP_SSANNE_DECK                          (9 | (1 << 8))
#define MAP_SSANNE_KITCHEN                       (10 | (1 << 8))
#define MAP_SSANNE_CAPTAINS_OFFICE               (11 | (1 << 8))
#define MAP_SSANNE_1F_ROOM1                      (12 | (1 << 8))
#define MAP_SSANNE_1F_ROOM2                      (13 | (1 << 8))
#define MAP_SSANNE_1F_ROOM3                      (14 | (1 << 8))
#define MAP_SSANNE_1F_ROOM4                      (15 | (1 << 8))
#define MAP_SSANNE_1F_ROOM5                      (16 | (1 << 8))
#define MAP_SSANNE_1F_ROOM7                      (17 | (1 << 8))
#define MAP_SSANNE_2F_ROOM1                      (18 | (1 << 8))
#define MAP_SSANNE_2F_ROOM2                      (19 | (1 << 8))
#define MAP_SSANNE_2F_ROOM3                      (20 | (1 << 8))
#define MAP_SSANNE_2F_ROOM4                      (21 | (1 << 8))
#define MAP_SSANNE_2F_ROOM5                      (22 | (1 << 8))
#define MAP_SSANNE_2F_ROOM6                      (23 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM1                     (24 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM2                     (25 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM3                     (26 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM4                     (27 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM5                     (28 | (1 << 8))
#define MAP_SSANNE_1F_ROOM6                      (29 | (1 << 8))
#define MAP_UNDERGROUND_PATH_NORTH_ENTRANCE      (30 | (1 << 8))
#define MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL  (31 | (1 << 8))
#define MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE      (32 | (1 << 8))
#define MAP_UNDERGROUND_PATH_WEST_ENTRANCE       (33 | (1 << 8))
#define MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL    (34 | (1 << 8))
#define MAP_UNDERGROUND_PATH_EAST_ENTRANCE       (35 | (1 << 8))
#define MAP_DIGLETTS_CAVE_NORTH_ENTRANCE         (36 | (1 << 8))
#define MAP_DIGLETTS_CAVE_B1F                    (37 | (1 << 8))
#define MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE         (38 | (1 << 8))
#define MAP_VICTORY_ROAD_1F                      (39 | (1 << 8))
#define MAP_VICTORY_ROAD_2F                      (40 | (1 << 8))
#define MAP_VICTORY_ROAD_3F                      (41 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B1F                   (42 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B2F                   (43 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B3F                   (44 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B4F                   (45 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_ELEVATOR              (46 | (1 << 8))
#define MAP_SILPH_CO_1F                          (47 | (1 << 8))
#define MAP_SILPH_CO_2F                          (48 | (1 << 8))
#define MAP_SILPH_CO_3F                          (49 | (1 << 8))
#define MAP_SILPH_CO_4F                          (50 | (1 << 8))
#define MAP_SILPH_CO_5F                          (51 | (1 << 8))
#define MAP_SILPH_CO_6F                          (52 | (1 << 8))
#define MAP_SILPH_CO_7F                          (53 | (1 << 8))
#define MAP_SILPH_CO_8F                          (54 | (1 << 8))
#define MAP_SILPH_CO_9F                          (55 | (1 << 8))
#define MAP_SILPH_CO_10F                         (56 | (1 << 8))
#define MAP_SILPH_CO_11F                         (57 | (1 << 8))
#define MAP_SILPH_CO_ELEVATOR                    (58 | (1 << 8))
#define MAP_POKEMON_MANSION_1F                   (59 | (1 << 8))
#define MAP_POKEMON_MANSION_2F                   (60 | (1 << 8))
#define MAP_POKEMON_MANSION_3F                   (61 | (1 << 8))
#define MAP_POKEMON_MANSION_B1F                  (62 | (1 << 8))
#define MAP_SAFARI_ZONE_CENTER                   (63 | (1 << 8))
#define MAP_SAFARI_ZONE_EAST                     (64 | (1 << 8))
#define MAP_SAFARI_ZONE_NORTH                    (65 | (1 << 8))
#define MAP_SAFARI_ZONE_WEST                     (66 | (1 << 8))
#define MAP_SAFARI_ZONE_BUILDING1                (67 | (1 << 8))
#define MAP_SAFARI_ZONE_BUILDING2                (68 | (1 << 8))
#define MAP_SAFARI_ZONE_BUILDING3                (69 | (1 << 8))
#define MAP_SAFARI_ZONE_BUILDING4                (70 | (1 << 8))
#define MAP_SAFARI_ZONE_SECRET_HOUSE             (71 | (1 << 8))
#define MAP_CERULEAN_CAVE_1F                     (72 | (1 << 8))
#define MAP_CERULEAN_CAVE_2F                     (73 | (1 << 8))
#define MAP_CERULEAN_CAVE_B1F                    (74 | (1 << 8))
#define MAP_POKEMON_LEAGUE_LORELEIS_ROOM         (75 | (1 << 8))
#define MAP_POKEMON_LEAGUE_BRUNOS_ROOM           (76 | (1 << 8))
#define MAP_POKEMON_LEAGUE_AGATHAS_ROOM          (77 | (1 << 8))
#define MAP_POKEMON_LEAGUE_LANCES_ROOM           (78 | (1 << 8))
#define MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM        (79 | (1 << 8))
#define MAP_POKEMON_LEAGUE_HALL_OF_FAME          (80 | (1 << 8))
#define MAP_ROCK_TUNNEL_1F                       (81 | (1 << 8))
#define MAP_ROCK_TUNNEL_B1F                      (82 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_1F                   (83 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B1F                  (84 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B2F                  (85 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B3F                  (86 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B4F                  (87 | (1 << 8))
#define MAP_POKEMON_TOWER_1F                     (88 | (1 << 8))
#define MAP_POKEMON_TOWER_2F                     (89 | (1 << 8))
#define MAP_POKEMON_TOWER_3F                     (90 | (1 << 8))
#define MAP_POKEMON_TOWER_4F                     (91 | (1 << 8))
#define MAP_POKEMON_TOWER_5F                     (92 | (1 << 8))
#define MAP_POKEMON_TOWER_6F                     (93 | (1 << 8))
#define MAP_POKEMON_TOWER_7F                     (94 | (1 << 8))
#define MAP_POWER_PLANT                          (95 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B4F               (96 | (1 << 8))
#define MAP_MT_EMBER_EXTERIOR                    (97 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT_PATH_1F              (98 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT_PATH_2F              (99 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT_PATH_3F              (100 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT                      (101 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B5F               (102 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_1F                (103 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B1F               (104 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B2F               (105 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B3F               (106 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS        (107 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS        (108 | (1 << 8))
#define MAP_THREE_ISLAND_BERRY_FOREST            (109 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE    (110 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_1F          (111 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F         (112 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK        (113 | (1 << 8))
#define MAP_FIVE_ISLAND_ROCKET_WAREHOUSE         (114 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_1F            (115 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B1F           (116 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B2F           (117 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B3F           (118 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B4F           (119 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM (120 | (1 << 8))
#define MAP_SIX_ISLAND_PATTERN_BUSH              (121 | (1 << 8))
#define MAP_SIX_ISLAND_ALTERING_CAVE             (122 | (1 << 8))

// Map Group 2
#define MAP_NAVEL_ROCK_EXTERIOR                       (0 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_1F             (1 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_2F             (2 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_3F             (3 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_4F             (4 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_5F             (5 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_6F             (6 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_7F             (7 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_8F             (8 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_ROOF           (9 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY          (10 | (2 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR       (11 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE            (12 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM1               (13 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM2               (14 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM3               (15 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM4               (16 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM5               (17 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM6               (18 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM7               (19 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM8               (20 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM9               (21 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM10              (22 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM11              (23 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM12              (24 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM13              (25 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM14              (26 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER  (27 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER  (28 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER  (29 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER (30 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER  (31 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER    (32 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER (33 | (2 << 8))
#define MAP_THREE_ISLAND_DUNSPARCE_TUNNEL             (34 | (2 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY    (35 | (2 << 8))
#define MAP_NAVEL_ROCK_1F                             (36 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT                         (37 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE                           (38 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_2F                 (39 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_3F                 (40 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_4F                 (41 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_5F                 (42 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B1F                  (43 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B2F                  (44 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B3F                  (45 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B4F                  (46 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B5F                  (47 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B6F                  (48 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B7F                  (49 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B8F                  (50 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B9F                  (51 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B10F                 (52 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B11F                 (53 | (2 << 8))
#define MAP_NAVEL_ROCK_B1F                            (54 | (2 << 8))
#define MAP_NAVEL_ROCK_FORK                           (55 | (2 << 8))
#define MAP_BIRTH_ISLAND_EXTERIOR                     (56 | (2 << 8))
#define MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA          (57 | (2 << 8))
#define MAP_BIRTH_ISLAND_HARBOR                       (58 | (2 << 8))
#define MAP_NAVEL_ROCK_HARBOR                         (59 | (2 << 8))

// Map Group 3
#define MAP_PALLET_TOWN                          (0 | (3 << 8))
#define MAP_VIRIDIAN_CITY                        (1 | (3 << 8))
#define MAP_PEWTER_CITY                          (2 | (3 << 8))
#define MAP_CERULEAN_CITY                        (3 | (3 << 8))
#define MAP_LAVENDER_TOWN                        (4 | (3 << 8))
#define MAP_VERMILION_CITY                       (5 | (3 << 8))
#define MAP_CELADON_CITY                         (6 | (3 << 8))
#define MAP_FUCHSIA_CITY                         (7 | (3 << 8))
#define MAP_CINNABAR_ISLAND                      (8 | (3 << 8))
#define MAP_INDIGO_PLATEAU_EXTERIOR              (9 | (3 << 8))
#define MAP_SAFFRON_CITY                         (10 | (3 << 8))
#define MAP_SAFFRON_CITY_CLASSIC                 (11 | (3 << 8))
#define MAP_ONE_ISLAND                           (12 | (3 << 8))
#define MAP_TWO_ISLAND                           (13 | (3 << 8))
#define MAP_THREE_ISLAND                         (14 | (3 << 8))
#define MAP_FOUR_ISLAND                          (15 | (3 << 8))
#define MAP_FIVE_ISLAND                          (16 | (3 << 8))
#define MAP_SEVEN_ISLAND                         (17 | (3 << 8))
#define MAP_SIX_ISLAND                           (18 | (3 << 8))
#define MAP_ROUTE_1                              ((3 << 8) | 19)
#define MAP_ROUTE_2                              ((3 << 8) | 20)
#define MAP_ROUTE_3                              ((3 << 8) | 21)
#define MAP_ROUTE_4                              ((3 << 8) | 22)
#define MAP_ROUTE_5                              ((3 << 8) | 23)
#define MAP_ROUTE_6                              ((3 << 8) | 24)
#define MAP_ROUTE_7                              ((3 << 8) | 25)
#define MAP_ROUTE_8                              ((3 << 8) | 26)
#define MAP_ROUTE_9                              ((3 << 8) | 27)
#define MAP_ROUTE_10                             ((3 << 8) | 28)
#define MAP_ROUTE_11                             ((3 << 8) | 29)
#define MAP_ROUTE_12                             ((3 << 8) | 30)
#define MAP_ROUTE_13                             ((3 << 8) | 31)
#define MAP_ROUTE_14                             ((3 << 8) | 32)
#define MAP_ROUTE_15                             ((3 << 8) | 33)
#define MAP_ROUTE_16                             ((3 << 8) | 34)
#define MAP_ROUTE_17                             ((3 << 8) | 35)
#define MAP_ROUTE_18                             ((3 << 8) | 36)
#define MAP_ROUTE_19                             ((3 << 8) | 37)
#define MAP_ROUTE_20                             ((3 << 8) | 38)
#define MAP_ROUTE_21_A                           ((3 << 8) | 39)
#define MAP_ROUTE_21_B                           ((3 << 8) | 40)
#define MAP_ROUTE_22                             ((3 << 8) | 41)
#define MAP_ROUTE_23                             ((3 << 8) | 42)
#define MAP_ROUTE_24                             ((3 << 8) | 43)
#define MAP_ROUTE_25                             ((3 << 8) | 44)
#define MAP_ONE_ISLAND_KINDLE_ROAD               (45 | (3 << 8))
#define MAP_ONE_ISLAND_TREASURE_BEACH            (46 | (3 << 8))
#define MAP_TWO_ISLAND_CAPE_BRINK                (47 | (3 << 8))
#define MAP_THREE_ISLAND_BOND_BRIDGE             (48 | (3 << 8))
#define MAP_THREE_ISLAND_PORT                    (49 | (3 << 8))
#define MAP_UNKNOWN_MAP_03_50                    (50 | (3 << 8))
#define MAP_UNKNOWN_MAP_03_51                    (51 | (3 << 8))
#define MAP_UNKNOWN_MAP_03_52                    (52 | (3 << 8))
#define MAP_UNKNOWN_MAP_03_53                    (53 | (3 << 8))
#define MAP_FIVE_ISLAND_RESORT_GORGEOUS          (54 | (3 << 8))
#define MAP_FIVE_ISLAND_WATER_LABYRINTH          (55 | (3 << 8))
#define MAP_FIVE_ISLAND_MEADOW                   (56 | (3 << 8))
#define MAP_FIVE_ISLAND_MEMORIAL_PILLAR          (57 | (3 << 8))
#define MAP_SIX_ISLAND_OUTCAST_ISLAND            (58 | (3 << 8))
#define MAP_SIX_ISLAND_GREEN_PATH                (59 | (3 << 8))
#define MAP_SIX_ISLAND_WATER_PATH                (60 | (3 << 8))
#define MAP_SIX_ISLAND_RUIN_VALLEY               (61 | (3 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER           (62 | (3 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE (63 | (3 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON          (64 | (3 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS            (65 | (3 << 8))

// Map Group 4
#define MAP_PALLET_TOWN_PLAYERS_HOUSE_1F   (0 | (4 << 8))
#define MAP_PALLET_TOWN_PLAYERS_HOUSE_2F   (1 | (4 << 8))
#define MAP_PALLET_TOWN_GARYS_HOUSE        (2 | (4 << 8))
#define MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB (3 | (4 << 8))

// Map Group 5
#define MAP_VIRIDIAN_CITY_HOUSE1            (0 | (5 << 8))
#define MAP_VIRIDIAN_CITY_GYM               (1 | (5 << 8))
#define MAP_VIRIDIAN_CITY_HOUSE2            (2 | (5 << 8))
#define MAP_VIRIDIAN_CITY_MART              (3 | (5 << 8))
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F (4 | (5 << 8))
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F (5 | (5 << 8))

// Map Group 6
#define MAP_PEWTER_CITY_MUSEUM_1F         (0 | (6 << 8))
#define MAP_PEWTER_CITY_MUSEUM_2F         (1 | (6 << 8))
#define MAP_PEWTER_CITY_GYM               (2 | (6 << 8))
#define MAP_PEWTER_CITY_MART              (3 | (6 << 8))
#define MAP_PEWTER_CITY_HOUSE1            (4 | (6 << 8))
#define MAP_PEWTER_CITY_POKEMON_CENTER_1F (5 | (6 << 8))
#define MAP_PEWTER_CITY_POKEMON_CENTER_2F (6 | (6 << 8))
#define MAP_PEWTER_CITY_HOUSE2            (7 | (6 << 8))

// Map Group 7
#define MAP_CERULEAN_CITY_HOUSE1            (0 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE2            (1 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE3            (2 | (7 << 8))
#define MAP_CERULEAN_CITY_POKEMON_CENTER_1F (3 | (7 << 8))
#define MAP_CERULEAN_CITY_POKEMON_CENTER_2F (4 | (7 << 8))
#define MAP_CERULEAN_CITY_GYM               (5 | (7 << 8))
#define MAP_CERULEAN_CITY_BIKE_SHOP         (6 | (7 << 8))
#define MAP_CERULEAN_CITY_MART              (7 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE4            (8 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE5            (9 | (7 << 8))

// Map Group 8
#define MAP_LAVENDER_TOWN_POKEMON_CENTER_1F       (0 | (8 << 8))
#define MAP_LAVENDER_TOWN_POKEMON_CENTER_2F       (1 | (8 << 8))
#define MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE (2 | (8 << 8))
#define MAP_LAVENDER_TOWN_HOUSE1                  (3 | (8 << 8))
#define MAP_LAVENDER_TOWN_HOUSE2                  (4 | (8 << 8))
#define MAP_LAVENDER_TOWN_MART                    (5 | (8 << 8))

// Map Group 9
#define MAP_VERMILION_CITY_HOUSE1            (0 | (9 << 8))
#define MAP_VERMILION_CITY_POKEMON_CENTER_1F (1 | (9 << 8))
#define MAP_VERMILION_CITY_POKEMON_CENTER_2F (2 | (9 << 8))
#define MAP_VERMILION_CITY_POKEMON_FAN_CLUB  (3 | (9 << 8))
#define MAP_VERMILION_CITY_HOUSE2            (4 | (9 << 8))
#define MAP_VERMILION_CITY_MART              (5 | (9 << 8))
#define MAP_VERMILION_CITY_GYM               (6 | (9 << 8))
#define MAP_VERMILION_CITY_HOUSE3            (7 | (9 << 8))

// Map Group 10
#define MAP_CELADON_CITY_DEPARTMENT_STORE_1F       (0 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_2F       (1 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_3F       (2 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_4F       (3 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_5F       (4 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF     (5 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR (6 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_1F           (7 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_2F           (8 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_3F           (9 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_ROOF         (10 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM    (11 | (10 << 8))
#define MAP_CELADON_CITY_POKEMON_CENTER_1F         (12 | (10 << 8))
#define MAP_CELADON_CITY_POKEMON_CENTER_2F         (13 | (10 << 8))
#define MAP_CELADON_CITY_GAME_CORNER               (14 | (10 << 8))
#define MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM    (15 | (10 << 8))
#define MAP_CELADON_CITY_GYM                       (16 | (10 << 8))
#define MAP_CELADON_CITY_RESTAURANT                (17 | (10 << 8))
#define MAP_CELADON_CITY_HOUSE1                    (18 | (10 << 8))
#define MAP_CELADON_CITY_HOTEL                     (19 | (10 << 8))

// Map Group 11
#define MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE (0 | (11 << 8))
#define MAP_FUCHSIA_CITY_MART                 (1 | (11 << 8))
#define MAP_FUCHSIA_CITY_ZOO_BUILDING         (2 | (11 << 8))
#define MAP_FUCHSIA_CITY_GYM                  (3 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE1               (4 | (11 << 8))
#define MAP_FUCHSIA_CITY_POKEMON_CENTER_1F    (5 | (11 << 8))
#define MAP_FUCHSIA_CITY_POKEMON_CENTER_2F    (6 | (11 << 8))
#define MAP_FUCHSIA_CITY_BUILDING1            (7 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE2               (8 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE3               (9 | (11 << 8))

// Map Group 12
#define MAP_CINNABAR_ISLAND_GYM                         (0 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE        (1 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE          (2 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM   (3 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM (4 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F           (5 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F           (6 | (12 << 8))
#define MAP_CINNABAR_ISLAND_MART                        (7 | (12 << 8))

// Map Group 13
#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F (0 | (13 << 8))
#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F (1 | (13 << 8))

// Map Group 14
#define MAP_SAFFRON_CITY_HOUSE1_1F                (0 | (14 << 8))
#define MAP_SAFFRON_CITY_HOUSE1_2F                (1 | (14 << 8))
#define MAP_SAFFRON_CITY_DOJO                     (2 | (14 << 8))
#define MAP_SAFFRON_CITY_GYM                      (3 | (14 << 8))
#define MAP_SAFFRON_CITY_HOUSE2                   (4 | (14 << 8))
#define MAP_SAFFRON_CITY_MART                     (5 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_CENTER_1F        (6 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_CENTER_2F        (7 | (14 << 8))
#define MAP_SAFFRON_CITY_HOUSE3                   (8 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (14 << 8))

// Map Group 15
#define MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE (0 | (15 << 8))
#define MAP_ROUTE2_HOUSE                          (1 | (15 << 8))
#define MAP_ROUTE2_EAST_BUILDING                  (2 | (15 << 8))
#define MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE (3 | (15 << 8))

// Map Group 16
#define MAP_ROUTE4_POKEMON_CENTER_1F (0 | (16 << 8))
#define MAP_ROUTE4_POKEMON_CENTER_2F (1 | (16 << 8))

// Map Group 17
#define MAP_ROUTE5_POKEMON_DAY_CARE (0 | (17 << 8))
#define MAP_ROUTE5_SOUTH_ENTRANCE   (1 | (17 << 8))

// Map Group 18
#define MAP_ROUTE6_NORTH_ENTRANCE (0 | (18 << 8))
#define MAP_UNKNOWN_MAP_18_01     (1 | (18 << 8))

// Map Group 19
#define MAP_ROUTE7_EAST_ENTRANCE (0 | (19 << 8))

// Map Group 20
#define MAP_ROUTE8_WEST_ENTRANCE (0 | (20 << 8))

// Map Group 21
#define MAP_ROUTE10_POKEMON_CENTER_1F (0 | (21 << 8))
#define MAP_ROUTE10_POKEMON_CENTER_2F (1 | (21 << 8))

// Map Group 22
#define MAP_ROUTE11_EAST_ENTRANCE_1F (0 | (22 << 8))
#define MAP_ROUTE11_EAST_ENTRANCE_2F (1 | (22 << 8))

// Map Group 23
#define MAP_ROUTE12_NORTH_ENTRANCE_1F (0 | (23 << 8))
#define MAP_ROUTE12_NORTH_ENTRANCE_2F (1 | (23 << 8))
#define MAP_ROUTE12_FISHING_HOUSE     (2 | (23 << 8))

// Map Group 24
#define MAP_ROUTE15_WEST_ENTRANCE_1F (0 | (24 << 8))
#define MAP_ROUTE15_WEST_ENTRANCE_2F (1 | (24 << 8))

// Map Group 25
#define MAP_ROUTE16_HOUSE             (0 | (25 << 8))
#define MAP_ROUTE16_NORTH_ENTRANCE_1F (1 | (25 << 8))
#define MAP_ROUTE16_NORTH_ENTRANCE_2F (2 | (25 << 8))

// Map Group 26
#define MAP_ROUTE18_EAST_ENTRANCE_1F (0 | (26 << 8))
#define MAP_ROUTE18_EAST_ENTRANCE_2F (1 | (26 << 8))

// Map Group 27
#define MAP_UNUSED_HOUSE_27_00 (0 | (27 << 8))

// Map Group 28
#define MAP_ROUTE22_NORTH_ENTRANCE (0 | (28 << 8))

// Map Group 29
#define MAP_UNUSED_HOUSE_29_00 (0 | (29 << 8))

// Map Group 30
#define MAP_ROUTE25_SEA_COTTAGE (0 | (30 << 8))

// Map Group 31
#define MAP_SEVEN_ISLAND_HOUSE_ROOM1       (0 | (31 << 8))
#define MAP_SEVEN_ISLAND_HOUSE_ROOM2       (1 | (31 << 8))
#define MAP_SEVEN_ISLAND_MART              (2 | (31 << 8))
#define MAP_SEVEN_ISLAND_POKEMON_CENTER_1F (3 | (31 << 8))
#define MAP_SEVEN_ISLAND_POKEMON_CENTER_2F (4 | (31 << 8))
#define MAP_UNUSED_HOUSE_31_05             (5 | (31 << 8))
#define MAP_SEVEN_ISLAND_HARBOR            (6 | (31 << 8))

// Map Group 32
#define MAP_ONE_ISLAND_POKEMON_CENTER_1F (0 | (32 << 8))
#define MAP_ONE_ISLAND_POKEMON_CENTER_2F (1 | (32 << 8))
#define MAP_ONE_ISLAND_HOUSE1            (2 | (32 << 8))
#define MAP_ONE_ISLAND_HOUSE2            (3 | (32 << 8))
#define MAP_ONE_ISLAND_HARBOR            (4 | (32 << 8))

// Map Group 33
#define MAP_TWO_ISLAND_JOYFUL_GAME_CORNER (0 | (33 << 8))
#define MAP_TWO_ISLAND_HOUSE              (1 | (33 << 8))
#define MAP_TWO_ISLAND_POKEMON_CENTER_1F  (2 | (33 << 8))
#define MAP_TWO_ISLAND_POKEMON_CENTER_2F  (3 | (33 << 8))
#define MAP_TWO_ISLAND_HARBOR             (4 | (33 << 8))

// Map Group 34
#define MAP_THREE_ISLAND_HOUSE1            (0 | (34 << 8))
#define MAP_THREE_ISLAND_POKEMON_CENTER_1F (1 | (34 << 8))
#define MAP_THREE_ISLAND_POKEMON_CENTER_2F (2 | (34 << 8))
#define MAP_THREE_ISLAND_MART              (3 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE2            (4 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE3            (5 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE4            (6 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE5            (7 | (34 << 8))

// Map Group 35
#define MAP_FOUR_ISLAND_POKEMON_DAY_CARE  (0 | (35 << 8))
#define MAP_FOUR_ISLAND_POKEMON_CENTER_1F (1 | (35 << 8))
#define MAP_FOUR_ISLAND_POKEMON_CENTER_2F (2 | (35 << 8))
#define MAP_FOUR_ISLAND_HOUSE1            (3 | (35 << 8))
#define MAP_FOUR_ISLAND_LORELEIS_HOUSE    (4 | (35 << 8))
#define MAP_FOUR_ISLAND_HARBOR            (5 | (35 << 8))
#define MAP_FOUR_ISLAND_HOUSE2            (6 | (35 << 8))
#define MAP_FOUR_ISLAND_MART              (7 | (35 << 8))

// Map Group 36
#define MAP_FIVE_ISLAND_POKEMON_CENTER_1F (0 | (36 << 8))
#define MAP_FIVE_ISLAND_POKEMON_CENTER_2F (1 | (36 << 8))
#define MAP_FIVE_ISLAND_HARBOR            (2 | (36 << 8))
#define MAP_FIVE_ISLAND_HOUSE1            (3 | (36 << 8))
#define MAP_FIVE_ISLAND_HOUSE2            (4 | (36 << 8))

// Map Group 37
#define MAP_SIX_ISLAND_POKEMON_CENTER_1F (0 | (37 << 8))
#define MAP_SIX_ISLAND_POKEMON_CENTER_2F (1 | (37 << 8))
#define MAP_SIX_ISLAND_HARBOR            (2 | (37 << 8))
#define MAP_SIX_ISLAND_HOUSE             (3 | (37 << 8))
#define MAP_SIX_ISLAND_MART              (4 | (37 << 8))

// Map Group 38
#define MAP_THREE_ISLAND_HARBOR (0 | (38 << 8))

// Map Group 39
#define MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE (0 | (39 << 8))

// Map Group 40
#define MAP_TWO_ISLAND_CAPE_BRINK_HOUSE (0 | (40 << 8))

// Map Group 41
#define MAP_SIX_ISLAND_WATER_PATH_HOUSE1 (0 | (41 << 8))
#define MAP_SIX_ISLAND_WATER_PATH_HOUSE2 (1 | (41 << 8))

// Map Group 42
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE (0 | (42 << 8))

#define MAP_GROUPS_COUNT 43

#else //For Pokemon Unbound

//West Borrius
#define MAP_FROZEN_HEIGHTS         ((3 << 8) | 66)
#define MAP_ROUTE_1                ((3 << 8) | 67)
#define MAP_BELLIN_TOWN            ((3 << 8) | 68)
#define MAP_ROUTE_2                ((3 << 8) | 69)
#define MAP_ROUTE_3                ((3 << 8) | 70)
#define MAP_DRESCO_TOWN            ((3 << 8) | 71)
#define MAP_ROUTE_4                ((3 << 8) | 72)
#define MAP_GRIM_WOODS             ((45 << 8) | 1)
#define MAP_ROUTE_5                ((3 << 8) | 73)
#define MAP_CRATER_TOWN            ((3 << 8) | 74)
#define MAP_POKEMON_DAY_CARE       ((1 << 8) | 94)
#define MAP_ROUTE_6                ((3 << 8) | 75)
#define MAP_ROUTE_7                ((3 << 8) | 76)
#define MAP_ROUTE_8                ((3 << 8) | 77)
#define MAP_BLIZZARD_CITY          ((3 << 8) | 78)
#define MAP_FROZEN_FOREST          ((1 << 8) | 81)
#define MAP_ROUTE_9                ((3 << 8) | 79)
#define MAP_TEHL_TOWN              ((3 << 8) | 80)
#define MAP_ROUTE_10               ((3 << 8) | 81)
#define MAP_AUBURN_WATERWAY_A      ((3 << 8) | 82)
#define MAP_AUBURN_WATERWAY_B      ((3 << 8) | 83)
#define MAP_FALLSHORE_CITY         ((3 << 8) | 84)
#define MAP_ROUTE_11               ((3 << 8) | 85)
#define MAP_EPIDIMY_TOWN           ((3 << 8) | 86)
#define MAP_TARMIGAN_TOWN          ((3 << 8) | 87)
#define MAP_ROUTE_12               ((3 << 8) | 88)
#define MAP_DEHARA_CITY            ((3 << 8) | 89)
#define MAP_RUINS_OF_VOID_EXT      ((1 << 8) | 109)
#define MAP_GREAT_DESERT_A         ((3 << 8) | 90)
#define MAP_GREAT_DESERT_B         ((3 << 8) | 91)
#define MAP_GREAT_DESERT_C         ((3 << 8) | 92)
#define MAP_ROUTE_13_A             ((3 << 8) | 93)
#define MAP_ROUTE_13_B             ((3 << 8) | 94)
#define MAP_ROUTE_14_A             ((3 << 8) | 95)
#define MAP_ROUTE_14_B             ((3 << 8) | 96)
#define MAP_ROUTE_14_C             ((3 << 8) | 97)
#define MAP_GURUN_TOWN             ((3 << 8) | 98)
#define MAP_VIVILL_WOODS           ((1 << 8) | 99)
#define MAP_VIVILL_TOWN            ((3 << 8) | 99)
#define MAP_ROUTE_15               ((3 << 8) | 100)
#define MAP_ROUTE_16               ((3 << 8) | 101)
#define MAP_ANTISIS_CITY           ((3 << 8) | 102)
#define MAP_THUNDERCAP_MT_EXT      ((3 << 8) | 103)
#define MAP_ROUTE_17               ((3 << 8) | 104)
#define MAP_SEAPORT_CITY           ((3 << 8) | 105)
#define MAP_BATTLE_FRONTIER        ((3 << 8) | 3)
#define MAP_ROUTE_18_A             ((3 << 8) | 106)
#define MAP_ROUTE_18_B             ((3 << 8) | 107)
#define MAP_POKEMON_LEAGUE         ((3 << 8) | 108)

#define MAP_FLOWER_PARADISE_A      ((1 << 8) | 4)
#define MAP_FLOWER_PARADISE_B      ((1 << 8) | 5)
#define MAP_FLOWER_PARADISE_C      ((1 << 8) | 6)

#define MAP_HIDDEN_GROTTO          ((1 << 8) | 7)
#define MAP_HIDDEN_GROTTO_WINTER   ((1 << 8) | 8)
#define MAP_HIDDEN_GROTTO_AUTUMN   ((1 << 8) | 9)

//East Borrius
#define MAP_POLDER_TOWN            ((3 << 8) | 0)
#define MAP_COOTES_BOG             ((3 << 8) | 1)
#define MAP_MAGNOLIA_TOWN          ((3 << 8) | 2)
#define MAP_MAGNOLIA_FIELDS        ((3 << 8) | 4)
#define MAP_REDWOOD_VILLAGE        ((3 << 8) | 5)
#define MAP_REDWOOD_FOREST         ((1 << 8) | 98)
#define MAP_CUBE_CORP              ((3 << 8) | 6)

#define MAP_FULLMOON_ISLAND_A      ((1 << 8) | 0)
#define MAP_FULLMOON_ISLAND_B      ((1 << 8) | 1)
#define MAP_NEWMOON_ISLAND_A       ((1 << 8) | 2)
#define MAP_NEWMOON_ISLAND_B       ((1 << 8) | 3)

//Dungeons
#define MAP_ICICLE_CAVE_1F             ((43 << 8) | 0)
#define MAP_ICICLE_CAVE_B1F            ((43 << 8) | 1)
#define MAP_ICICLE_CAVE_B2F            ((43 << 8) | 2)
#define MAP_ICICLE_CAVE_B3F            ((43 << 8) | 3)
#define MAP_ICICLE_CAVE_B3F_ALT        ((43 << 8) | 4)
#define MAP_ICICLE_CAVE_1F_BACK        ((43 << 8) | 5)
#define MAP_ICICLE_CAVE_CLEARING       ((43 << 8) | 6)
#define MAP_ICICLE_CAVE_B4F            ((43 << 8) | 7)
#define MAP_ICICLE_CAVE_RAID_DEN       ((1 << 8) | 28)

#define MAP_CINDER_VOLCANO_F1          ((45 << 8) | 3)
#define MAP_CINDER_VOLCANO_2F          ((45 << 8) | 4)
#define MAP_CINDER_VOLCANO_SHADOW_1F   ((6 << 8) | 12)
#define MAP_CINDER_VOLCANO_3F_1        ((1 << 8) | 46)
#define MAP_CINDER_VOLCANO_SUMMIT      ((1 << 8) | 47)
#define MAP_CINDER_VOLCANO_4F_2        ((1 << 8) | 50)
#define MAP_CINDER_VOLCANO_SHADOW_B1F  ((1 << 8) | 51)
#define MAP_CINDER_VOLCANO_SHADOW_B2F  ((1 << 8) | 52)
#define MAP_CINDER_VOLCANO_SHADOW_STORAGE_1 ((1 << 8) | 53)
#define MAP_CINDER_VOLCANO_SHADOW_STORAGE_2 ((1 << 8) | 54)

#define MAP_VALLEY_CAVE_A              ((47 << 8) | 0)
#define MAP_VALLEY_CAVE_B              ((47 << 8) | 1)
#define MAP_VALLEY_CAVE_C              ((47 << 8) | 2)
#define MAP_VALLEY_CAVE_D              ((47 << 8) | 3)

#define MAP_FROST_MOUNTAIN_1F          ((50 << 8) | 0)
#define MAP_FROST_MOUNTAIN_2F          ((50 << 8) | 1)
#define MAP_FROST_MOUNTAIN_3F          ((48 << 8) | 1)

#define MAP_AUTL_WOODS_WEST            ((1 << 8) | 119)
#define MAP_AUTL_WOODS_EAST            ((1 << 8) | 120)

#define MAP_LOST_TUNNEL_B1F            ((1 << 8) | 121)

#define MAP_CLIFF_CAVE_1F              ((52 << 8) | 0)
#define MAP_CLIFF_CAVE_2F              ((52 << 8) | 1)
#define MAP_CLIFF_CAVE_3F              ((52 << 8) | 2)

#define MAP_THUNDERCAP_MT_SUMMIT       ((53 << 8) | 0)
#define MAP_THUNDERCAP_MT_1F           ((53 << 8) | 1)
#define MAP_THUNDERCAP_MT_2F           ((53 << 8) | 2)
#define MAP_THUNDERCAP_MT_3F_3         ((53 << 8) | 3)
#define MAP_THUNDERCAP_MT_3F_2         ((53 << 8) | 4)
#define MAP_THUNDERCAP_MT_3F_1         ((53 << 8) | 5)
#define MAP_THUNDERCAP_MT_3F_1_BACK    ((53 << 8) | 6)
#define MAP_THUNDERCAP_MT_4F_2         ((53 << 8) | 9)
#define MAP_THUNDERCAP_MT_CLIFFSIDE    ((53 << 8) | 10)

#define MAP_RIFT_CAVE_B1F              ((1 << 8) | 35)

#define MAP_RUINS_OF_VOID_B3F          ((1 << 8) | 114)
#define MAP_RUINS_OF_VOID_B3F_ALT      ((1 << 8) | 107)
#define MAP_ROV_POST_GAME_AKLOVE       ((1 << 8) | 108)

#define MAP_DISTORTION_WORLD_1         ((1 << 8) | 63)
#define MAP_DISTORTION_WORLD_2         ((1 << 8) | 64)
#define MAP_DISTORTION_WORLD_3         ((1 << 8) | 65)
#define MAP_DISTORTION_WORLD_4         ((1 << 8) | 66)
#define MAP_DISTORTION_WORLD_5         ((1 << 8) | 67)

#define MAP_ICY_HOLE_1F                ((2 << 8) | 0)
#define MAP_ICY_HOLE_B1F               ((2 << 8) | 14)

#define MAP_TOMB_OF_BORRIUS_1F         ((1 << 8) | 83)
#define MAP_TOMB_OF_BORRIUS_B3F        ((1 << 8) | 85)
#define MAP_TOMB_OF_BORRIUS_1F_BACK    ((1 << 8) | 90)

#define MAP_CRYSTAL_PEAK_BOG_ENTRANCE  ((56 << 8) | 0)
#define MAP_CRYSTAL_PEAK_B1F_LEFT      ((56 << 8) | 1)
#define MAP_CRYSTAL_PEAK_1F_MAIN_ROOM  ((56 << 8) | 2)
#define MAP_CRYSTAL_PEAK_1F_LEFT_ROOM  ((56 << 8) | 3)
#define MAP_CRYSTAL_PEAK_CUBE_ENTRANCE ((56 << 8) | 6)
#define MAP_CRYSTAL_PEAK_CLIFFSIDE     ((56 << 8) | 7)
#define MAP_CRYSTAL_PEAK_3F            ((56 << 8) | 9)
#define MAP_CRYSTAL_PEAK_5F            ((56 << 8) | 11)
#define MAP_CRYSTAL_PEAK_SUMMIT        ((56 << 8) | 12)

#define MAP_VICTORY_ROAD_CAVE_A        ((55 << 8) | 0)
#define MAP_VICTORY_ROAD_CAVE_B        ((55 << 8) | 1)
#define MAP_VICTORY_ROAD_VOLCANO       ((55 << 8) | 2)
#define MAP_VICTORY_ROAD_CAVE_C        ((55 << 8) | 3)
#define MAP_VICTORY_ROAD_GRASSY        ((55 << 8) | 4)
#define MAP_VICTORY_ROAD_CAVE_D        ((55 << 8) | 5)
#define MAP_VICTORY_ROAD_MOUNTAINSIDE  ((55 << 8) | 6)
#define MAP_VICTORY_ROAD_ICE_CAVE_A    ((55 << 8) | 7)
#define MAP_VICTORY_ROAD_ICE_CAVE_B    ((55 << 8) | 8)

#define MAP_UNDERWATER_VIVILL_TOWN     ((32 << 8) | 4)
#define MAP_UNDERWATER_ROUTE_17        ((32 << 8) | 6)

//Interior
#define MAP_PLAYER_ROOM                          ((4 << 8) | 1)
#define MAP_BELLIN_TOWN_MART                     ((5 << 8) | 3)
#define MAP_ROUTE_9_HOUSE_2                      ((51 << 8) | 1)

#define MAP_MIRSKLE_LAB_UNDERWATER_1             ((7 << 8) | 10)
#define MAP_MIRSKLE_LAB_UNDERWATER_2             ((7 << 8) | 11)

#define MAP_SHADOW_WAREHOUSE                     ((4 << 8) | 10)
#define MAP_SHADOW_BASE_B3F                      ((1 << 8) | 45)

#define MAP_UNDERGROUND_PASS_A                   ((1 << 8) | 31)
#define MAP_UNDERGROUND_PASS_B                   ((1 << 8) | 32)

#define MAP_FALLSHORE_CITY_EVOLUTION_HOUSE_LOWER ((14 << 8) | 2)

#define MAP_FALLSHORE_CITY_GYM_B1F               ((14 << 8) | 15)
#define MAP_FALLSHORE_CITY_GYM_B2F               ((14 << 8) | 14)

#define MAP_DEHARA_DEPT_1F                       ((10 << 8) | 0)
#define MAP_DEHARA_DEPT_2F                       ((10 << 8) | 1)
#define MAP_DEHARA_DEPT_3F                       ((10 << 8) | 2)
#define MAP_DEHARA_DEPT_4F                       ((10 << 8) | 3)
#define MAP_DEHARA_DEPT_5F                       ((10 << 8) | 4)
#define MAP_DEHARA_DEPT_6F                       ((10 << 8) | 5)
#define MAP_DEHARA_DEPT_ELEVATOR                 ((10 << 8) | 6)

#define MAP_DEHARA_CITY_GYM_1F                   ((10 << 8) | 23)
#define MAP_DEHARA_CITY_GYM_B1F                  ((10 << 8) | 24)
#define MAP_DEHARA_CITY_GYM_B2F                  ((10 << 8) | 25)

#define MAP_VIVILL_TOWN_POKEMON_CENTRE           ((44 << 8) | 3)
#define MAP_VIVILL_TOWN_POKEMON_CENTRE_TOP_FLOOR ((44 << 8) | 4)
#define MAP_VIVILL_TOWN_MART                     ((44 << 8) | 5)

#define MAP_VIVILL_WAREHOUSE_1F                  ((1 << 8) | 100)
#define MAP_VIVILL_WAREHOUSE_B1F                 ((1 << 8) | 101)
#define MAP_VIVILL_WAREHOUSE_RESEARCH_ROOM       ((1 << 8) | 102)
#define MAP_VIVILL_WAREHOUSE_B2F                 ((1 << 8) | 103)
#define MAP_VIVILL_WAREHOUSE_B3F                 ((1 << 8) | 104)
#define MAP_VIVILL_WAREHOUSE_COMMAND_ROOM        ((1 << 8) | 105)
#define MAP_VIVILL_WAREHOUSE_UNDERWATER          ((1 << 8) | 106)

#define MAP_ANTISIS_CITY_GYM_B1F                 ((54 << 8) | 4)

#define MAP_ANTISIS_SEWERS_NORTH                 ((1 << 8) | 68)
#define MAP_ANTISIS_SEWERS_SOUTH                 ((1 << 8) | 69)
#define MAP_ANTISIS_SEWERS_WEST_TUNNEL           ((1 << 8) | 70)
#define MAP_ANTISIS_SEWERS_EAST_TUNNEL           ((1 << 8) | 71)
#define MAP_ANTISIS_SEWERS_ROOM                  ((1 << 8) | 72)

#define MAP_SEAPORT_WAREHOUSE_WEST_1F            ((33 << 8) | 15)
#define MAP_SEAPORT_WAREHOUSE_WEST_B1F           ((33 << 8) | 16)

#define MAP_POLDER_TOWN_GYM                      ((34 << 8) | 4)

#define MAP_REDWOOD_VILLAGE_GYM_ROOM_1           ((36 << 8) | 7)
#define MAP_REDWOOD_VILLAGE_GYM_ROOM_2           ((36 << 8) | 8)
#define MAP_REDWOOD_VILLAGE_GYM_ROOM_3           ((36 << 8) | 9)
#define MAP_REDWOOD_VILLAGE_GYM_ROOM_4           ((36 << 8) | 10)

#define MAP_POKEMON_LEAGUE_E4_HALL               ((1 << 8) | 74)
#define MAP_POKEMON_LEAGUE_MOLEMAN_ROOM          ((1 << 8) | 75)
#define MAP_POKEMON_LEAGUE_ELIAS_ROOM            ((1 << 8) | 76)
#define MAP_POKEMON_LEAGUE_ANABELLE_ROOM         ((1 << 8) | 77)
#define MAP_POKEMON_LEAGUE_PENNY_ROOM            ((1 << 8) | 78)
#define MAP_POKEMON_LEAGUE_CHAMP_ROOM            ((1 << 8) | 79)
#define MAP_POKEMON_LEAGUE_HALL_OF_FAME          ((1 << 8) | 80)

#define MAP_BATTLE_MINE_ROOM                     ((2 << 8) | 4)
#define MAP_BATTLE_CIRCUS_SALON                  ((2 << 8) | 6)
#define MAP_BATTLE_TOWER_SALON                   ((2 << 8) | 7)

#define MAP_THE_NIGHTMARE                        ((2 << 8) | 36)

#define MAP_HISTORY_CUTSCENE                     ((31 << 8) | 5)

#endif
